package com.hndct.util;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class MathUtil {
	
	/**
	 * 指定本金、天数、日收益率，非复利方式计算到期利息
	 * 利息计算公式 ：期末利息 = 本金*日收益率*天数
	 * @param baseCoin 本金
	 * @param dayNum 存储天数
	 * @param dayRate 日利率
	 * @return
	 */
	public static BigDecimal getInterestWithoutCompoundInterest(BigDecimal baseCoin,int dayNum,BigDecimal dayRate){
		return baseCoin.multiply(new BigDecimal(dayNum)).multiply(dayRate).setScale(8, RoundingMode.HALF_EVEN);
	}
	
	/**
	 * 指定本金、天数、日收益率，复利方式计算到期利息
	 * 利息计算公式：期末利息 = 期末本息和 - 本金
	 * 期末本息和 = 本金*（1+日利率）^天数
	 * @param baseCoin 本金
	 * @param dayNum 存储天数
	 * @param dayRate 日利率
	 * @return
	 */
	public static BigDecimal getInterestWithCompoundInterest(BigDecimal baseCoin,int dayNum,BigDecimal dayRate){
		return baseCoin.multiply(dayRate.add(new BigDecimal(1).add(dayRate).pow(dayNum))).subtract(baseCoin).setScale(8, RoundingMode.HALF_EVEN);
	}

}
